from sklearn.linear_model import LinearRegression
# from sklearn.datasets import load_boston
import matplotlib.pyplot as plt
import numpy as np

# boston = load_boston()

# x = boston.data[:, 5]
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print('x 的类型', type(x))
print('x 的值', x)
print('x 的shape', x.shape)

# y = boston.target
y1 = [1,2,3,5,14,29,20,15,15,20,25]
# for i in x:
#     y1.append(15 * i + 2)

y = np.array(y1)
print('y 的类型', type(y))
print('y 的值', y)
print('y 的shape', y.shape)

x1 = [[float(str(i))] for i in x]
print('x1 的类型', type(x1))
print('x 的list', list(x))
print('x1 的值', x1)

lm = LinearRegression()
lm.fit(x1, y)
# lm.predict(xx)
print('回归方程的斜率为：', lm.coef_[0])
print('回归方程的截距为：', lm.intercept_)
print('回归方程为：y = ', lm.coef_, '*x + (', lm.intercept_, ')')
plt.scatter(x, y, color='black')
plt.scatter(x, lm.predict(x1), color='red')
plt.plot(x, x * lm.coef_ + lm.intercept_, color='green')
plt.show()

#  <script src="echarts.min.js"></script>
# <div id="main" style="width: 600px;height:400px;"></div>
# var myChart = echarts.init(document.getElementById('main'));

# 'value' 数值轴，适用于连续数据。
# 'category' 类目轴，适用于离散的类目数据。为该类型时类目数据可自动从 series.data 或 dataset.source 中取，或者可通过 yAxis.data 设置类目数据。
# 'time' 时间轴，适用于连续的时序数据，与数值轴相比时间轴带有时间的格式化，在刻度计算上也有所不同，例如会根据跨度的范围来决定使用月，星期，日还是小时范围的刻度。
# 'log' 对数轴。适用于对数数据。

# var option = {
#     xAxis: {
#         type: 'category',
#         data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
#     },
#     yAxis: {
#         type: 'value'
#     },
#     tooltip: {trigger: 'axis'},
#     series: [{
#         data: [820, 932, 901, 934, 1290, 1330, 1320],
#         type: 'line',
#         smooth: true
#     }]
# };
# // 使用刚指定的配置项和数据显示图表。
# myChart.setOption(option);

'''
option = {
    title: {
        text: '折线图堆叠'
    },
    tooltip: {
        trigger: 'axis'
    },
    legend: {
        data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    toolbox: {
        feature: {
            saveAsImage: {}
        }
    },
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
    yAxis: {
        type: 'value'
    },
    series: [
        {
            name: '邮件营销',
            type: 'line',
            stack: '总量',
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
            name: '联盟广告',
            type: 'line',
            stack: '总量',
            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
            name: '视频广告',
            type: 'line',
            stack: '总量',
            data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
            name: '直接访问',
            type: 'line',
            stack: '总量',
            data: [320, 332, 301, 334, 390, 330, 320]
        },
        {
            name: '搜索引擎',
            type: 'line',
            stack: '总量',
            data: [820, 932, 901, 934, 1290, 1330, 1320]
        }
    ]
};

'''